New RelicのAPM(Ruby)用の検証環境を、EC2上のRedmineに構築してみた
こんにちは、ゲームソリューション部のsoraです。
今回は、「New RelicのAPM(Ruby)用の検証環境を、EC2上のRedmineに構築してみた」ことについて書いていきます。
はじめに
New Relicとは何かについては、以下ブログをご参照ください。
[初心者向け] SaaS型の可観測性プラットフォーム New Relic とはどんなものか
New RelicのAPM(Ruby)を導入した場合に、見ることのできる項目を理解したり、デモとして活用するための環境を構築してみました。
公式ページやNew RelicのGUIを参考に進めていきます。
APMの概要 | New Relic Documentation
今回監視対象とするアプリはRedmineのため、Ruby Agentを使用します。
個人的に、Ruby on Railsを触ったことがないこともあり、色々つまづいた部分もあったため、その点も記載していきます。
本記事ではAPMの導入がメインであり、APMで見ることのできる項目についての説明は記載しません。
EC2上でのRedmine構築
Redmine構築
RedmineはAMIで簡単に構築可能です。
今回は以下を選択しました。
EC2インスタンスタイプにt3a.smallが選択されていましたが、ap-northeast-1cではt3a.smallが利用できなかったため、t3.smallにしました。
Redmineへのログイン
今回利用することはありませんが、Redmineへログインするための情報を確認します。
Redmineのログイン情報を取得するために、SSHで接続します。
SSH接続時のユーザ名は、私の利用したバージョンだとbitnami
でしたが、環境やバージョンによってはredmine
やubuntu
など異なる場合があるらしいです。
パスワードはなしで、キーペアはEC2インスタンス作成時に選択したものです。
SSH接続ができたら、catコマンドでRedmineのログイン情報を確認します。
$ cat bitnami_credentials Welcome to the Redmine packaged by Bitnami ****************************************************************************** The default username and password is 'user' and '[パスワード]'. ****************************************************************************** You can also use this password to access the databases and any other component the stack includes. Please refer to https://docs.bitnami.com/ for more details.
http://(IPアドレス)/login
にアクセスして、確認したログイン情報でログインが可能です。
New RelicのAPMの導入
ここまでで準備した監視対象のサーバにNew RelicのAPMを導入していきます。Add Data
からApplication Monitoring
のRubyを選択します。
その後、アプリケーションの名前を設定します。
これはNew Relic側で表示するときや設定ファイルに記述される名前であり、何でも良いです。
次に、New Relic Agentをインストールします。
Bundlerを使用しているため、Yes, Using I'm Bundler
を選択して、Gemfileへの追記、インストールを実行します。
ここで、私がいくつかつまづいたポイントを記載します。
(Ruby on Railsに知見のない初心者向けのため、知見のある方は次のキャプチャ画像まで飛ばしてください。)
まずGemfile
がどこにあるのかというと、/opt/bitnami/redmine
配下にあります。Gemfile
に指定されたgem 'newrelic_rpm'
を追記して、bundle install
を実行すると、以下エラーが出ました。
$ bundle install You are trying to install in deployment mode after changing your Gemfile.
Gemfile
を変更した後に、インストールしようとしているのが良くないみたい?(このときdeployment mode
が何かわからずスルーしてしまいました。)
色々調べてみたところ、一旦Gemfile.lock
を削除してみると良いと記載があったため、その通りにしてみると以下エラーが出ました。
$ bundle install The deployment setting requires a Gemfile.lock. Please make sure you have checked your Gemfile.lock into version control before deploying.
Gemfile.lock
が存在しなくてエラーが出ているように見えます。bundle install
で、Gemfile
からGemfile.lock
が生成されると期待していたため困りました。
原因としては、デフォルトかもしくは試行錯誤している中で、deploymentモードになっていたことでした。
deploymentモードのbundlerは、Gemfile.lock
のみを参照するため、Gemfile.lock
が必須とのことです。
そのため、deploymentモードを解除して、再実行すると上手くいきました。
$ cat .bundle/config BUNDLE_BIN: "bin" BUNDLE_DEPLOYMENT: "true" BUNDLE_PATH: "vendor/bundle" BUNDLE_WITHOUT: "development:sqlite:test" $ vi .bundle/config # ⇒BUNDLE_DEPLOYMENT: "true"の削除 $ bundle install
次に、New Relicのconfigファイルをダウンロードしてサーバ上に配置します。
配置場所は、/opt/bitnami/redmine/config
です。
次に、インフラ監視を入れる場合は、指定されたcurlを実行します。
この工程はスキップすることが可能です。
最後に、接続テストを実行して、正常に完了すれば導入完了です。
New RelicのAPMの確認
New RelicのAPM & Services
で、先ほど作成したアプリ名を選択することで、APMが導入できていることが確認できます。
最後に
今回は、「New RelicのAPM(Ruby)用の検証環境を、EC2上のRedmineに構築してみた」ことを記事にしました。
どなたかの参考になると幸いです。